package com.dd.cloud.user.DTO.common;

import com.dd.cloud.common.utils.AESUtil;
import com.dd.cloud.user.DTO.CommonParamReq;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 通用物流回调数据
 *
 * @author Lx
 * @version 1.0
 * @date 2023/8/16
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class CommonExpressReportReq extends CommonParamReq implements Serializable {
    /**
     * 自定义参数 我方泽科平台自定义的加密参数
     */
    @NotBlank(message = "自定义加密参数不能为空")
    private String param;

    /**
     * 物流通知类型	必须
     * type=1表示物流出库通知(运输/派送中)
     * type=2表示物流派送完毕通知(已签收)
     */
    @NotBlank(message = "类型 1出库 2签收")
    private Integer type;

    /**
     * 物流单号     非必须     type=1必传
     */
    private String logisticsNo;

    /**
     * 物流公司     非必须     type=1可传可不传
     */
    private String logisticsName;

    /**
     * 第三方药房订单号     非必须     可不传
     */
    private String thirdPartyOrderNo;

    /**
     * 签收时间     非必须     type=2必传
     */
    private LocalDateTime receivingTime;

    /**
     * 解密参数,是否被篡改信息
     *
     * @return false 解密失败 true 解密成功
     */
    public boolean decrypt() {
        try {
            System.out.println("param:" + this.param);
            this.param = AESUtil.decrypt(this.param, AESUtil.SECRET_KEY);
            System.out.println("param:" + this.param);
            if (this.param == null) {
                return false;
            }
        } catch (Exception e) {
            return false;
        }
        return true;
    }
}
